[C] Criptografia por Inversão de bits
Publicado por Enzo de Brito Ferber 04/03/2006
[ Hits: 13.283 ]
Homepage: http://www.maximasonorizacao.com.br
Programa de criptografia simples que
usa o operador ~(complemento de 1).
O operador ~ faz o seguinte:
01000001 ~
10111110
Todos os bits 0 passam a ser 1, e
todos os 1 passam a ser 0. O
programa criptografa um arquivo
inteiro, não uma só palavra.
#include <stdio.h>
#include <stdlib.h>
char encode(char ch){
return(~ch);
}
int set(){
system("clear");
}
int abrirArquivo(char caminho[]){
FILE *arqEntrada;
FILE *arqSaida;
char *textoEntrada;
char *textoSaida;
char ch;
int i=2; //para poder ser usado para alocação dinamica
if((arqEntrada = fopen(caminho, "r")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
exit(1);
}
if((arqSaida = fopen("texto_criptografado.txt", "w")) == 0){
printf("Impossivel abrir o arquivo...\n");
printf("Pressione ENTER para continuar...\n");
__fpurge(stdin);
ch = getchar();
main();
}
printf("Realizando criptografia...\n");
while(!feof(arqEntrada)){
if((textoEntrada = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
if((textoSaida = (char *)calloc(i, sizeof(char)))== 0){
printf("Memoria insuficiente...\n");
exit(1);
}
fscanf(arqEntrada, "%c", &textoEntrada[i-2]);
if(textoEntrada[i-2] == '{FONTE}') break;
textoSaida[i-2] = encode(textoEntrada[i-2]);
fprintf(arqSaida, "%c", textoSaida[i-2]);
i++;
}
printf("Criptografia do arquivo realizada com sucesso...\n\n\n");
fclose(arqEntrada);
fclose(arqSaida);
free(textoEntrada);
free(textoSaida);
system("cat texto_criptografado.txt");
__fpurge(stdin);
printf("\n\nPressione ENTER para continuar...");
ch = getchar();
}
int main(void){
char caminho[100];
LOOP:
set();
printf("\t\t* * * * * CRIPTOGRAFIA DE ARQUIVO * * * * *\n\n\n");
printf("Arquivo: ");
__fpurge(stdin);
scanf("%[^\n]", caminho);
abrirArquivo(caminho);
goto LOOP;
}
Script para fazer ataque DoS - use apenas como testes com sistemas de segurança
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como quebrar senha usando john the ripper
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Não consigo instalar distro antiga no virtualbox nem direto no hd (23)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









